package msrc

import (
	"time"
)

// Подставка для тестирования библиотеки
type serviceMock struct {
	RunIsCalled      bool
	ShutdownIsCalled bool
	RunResult        error

	RunStat bool
}

// IsStarted возвращает статус состояния запуска сервиса
func (s *serviceMock) IsStarted() bool {
	return s.RunIsCalled
}

// IsAlive возвращает статус сервиса: живой или нет
func (s *serviceMock) IsAlive() bool {
	return s.RunStat
}

// Run выполняет запуск сервера
func (s *serviceMock) Run() error {
	s.RunStat = true
	defer func() {
		s.RunStat = false
	}()

	s.RunIsCalled = true

	time.Sleep(time.Millisecond * 500)

	return s.RunResult
}

// GracefulShutdown выполняет правильную остановку сервиса
func (s *serviceMock) GracefulShutdown() {
	s.ShutdownIsCalled = true

	time.Sleep(time.Millisecond * 100)
}
